[VIM] Tratar uma linha como várias [RESOLVIDO]

1. [VIM] Tratar uma linha como várias [RESOLVIDO]

Elder Marco
eldermarco

(usa Fedora)

Enviado em 24/06/2010 - 13:57h

Caros,

Costumo utilizar o Vim para algumas tarefas que utilizo. No entanto, existem documentos que escrevo em que um parágrafo é colocado somente em uma linha (isto é, não existe um '\n' nesse trecho, mas o documento é criado corretamente quando processado), como é o caso do LaTeX. Nesse caso, quando a linha é grande demais, editor 'quebra' ela em várias de uma maneira lógica, apesar de não existir qualquer quebra de linha no documento realmente.

Certo, se eu utilizar o gedit, por exemplo, poderei navegar entre essas linhas usando o seta para cima e seta para baixo como se realmente fosse mais de uma linha, mas quando tento fazer a mesma coisa com o Vim, a coisa complica porque ele trata uma linha exatamente como isso: uma linha! Daí se uso seta para cima ele vai para a primeira linha lógica. Se uso seta para baixo, ele vai para última, mas nunca vai para a linha lógica de baixo ou a de cima, fazendo com que eu tenha que navegar com seta para a direita ou seta para a esquerda até chegar no ponto que quero..

Existe alguma maneira de mudar esse comportamento o Vim?

Não sei se deixei as coisas confusas demais aí em cima.. :)


  


2. MELHOR RESPOSTA

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 24/06/2010 - 14:30h

Pra isso você usa os comandos 'gk' e 'gj' para se mover por elas.

Dica: Você também pode mapear esses comandos, tornando as coisas mais fáceis:

No teu vimrc adicione:

map <Up> gk
map <Down> gj

Agora você pode usar as teclas direcionais.

3. Re: [VIM] Tratar uma linha como várias [RESOLVIDO]

Elder Marco
eldermarco

(usa Fedora)

Enviado em 24/06/2010 - 14:46h

Opa, obrigado pela sua resposta e ela quase resolve meu problema. A única inconveniência é que eu preciso estar em modo de comando para realizar essas operações, mas na maior parte das vezes eu estou em modo de edição. Existe alguma maneira de fazer com que isso ocorra também em modo de edição?


4. Re: [VIM] Tratar uma linha como várias [RESOLVIDO]

Elder Marco
eldermarco

(usa Fedora)

Enviado em 24/06/2010 - 14:56h

Ah sim, eu consegui fazer com que ocorra isso no modo de edição colocando isso no meu vimrc:

map! <Up> <c-o>gk
map! <Down> <c-o>gj

Mas agora a coisa inverteu porque não funciona mais no modo de comando. A ideia é que funcione nos dois


5. Re: [VIM] Tratar uma linha como várias [RESOLVIDO]

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 24/06/2010 - 15:07h

Use assim:

" Modo de insercao
imap <Up> <c-o>gk
imap <Down> <c-o>gj
" Modo de comandos
map <Up> gk
map <Down> gj



6. Caro,

Elder Marco
eldermarco

(usa Fedora)

Enviado em 24/06/2010 - 15:14h

Obrigado pela ajuda, eu fiz o mapeamento para os dois casos. Assim:

-------------------------
map <Up> gk
imap <Up> <c-o>gk
map <Down> gj
imap <Down> <c-o>gj
-------------------------

E daí meu problema foi resolvido. :-)

Peguei isso no FAQ do Vim: http://vimdoc.sourceforge.net/htmldoc/vimfaq.html






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts